/*
 * @Description:Week 枚举类
 * 
 * @Author: rendc
 * 
 * @Date: 2025-08-08 16:41:18
 * 
 * @LastEditors: rendc
 * 
 * @LastEditTime: 2025-08-08 17:04:32
 */
// 枚举类的定义
enum Week {
  // 枚举元素必须放第一行
  // 元素与元素之间 ,
  // 最后一个元素后面可以不加; 但是
  MON() {
    @Override
    public void show() {
      // 通过匿名内部类实现枚举类中的抽象方法
      System.out.println("周一");
    }
  },
  TUE() {
    @Override
    public void show() {
      // 通过匿名内部类实现枚举类中的抽象方法
      // 每个枚举元素都要重写抽象方法
      System.out.println("周二");
    }
  },
  WED() {
    @Override
    public void show() {
      // 通过匿名内部类实现枚举类中的抽象方法
      // 每个枚举元素都要重写抽象方法
      System.out.println("周三");
    }
  },
  THU("vME50") {
    @Override
    public void show() {
      // 通过匿名内部类实现枚举类中的抽象方法
      // 每个枚举元素都要重写抽象方法
      System.out.println("周4");
    }
  },
  FRI() {
    @Override
    public void show() {
      // 通过匿名内部类实现枚举类中的抽象方法
      // 每个枚举元素都要重写抽象方法
      System.out.println("周5");
    }
  },
  SAT() {
    @Override
    public void show() {
      // 通过匿名内部类实现枚举类中的抽象方法
      // 每个枚举元素都要重写抽象方法
      System.out.println("周6");
    }
  },
  SUN() {
    @Override
    public void show() {
      // 通过匿名内部类实现枚举类中的抽象方法
      // 每个枚举元素都要重写抽象方法
      System.out.println("周日");
    }
  };

  // SUN 和 SUN() 的效果一样
  // 相当与调用枚举类的无参构造器创建对象
  private Week() {
  };

  // 枚举类的构造器必须私有
  private Week(String desc) {
    this.desc = desc;
  }

  // 成员属性
  private String desc;

  // 成员方法
  public String getDesc() {
    return desc;
  }

  public void setDesc(String desc) {
    this.desc = desc;
  }

  // 枚举类可以包含抽象方法 不能是 private
  public abstract void show();
}